#pragma once

typedef struct ThreadPool ThreadPool;

// 创建线程池并初始化
ThreadPool *threadPoolCreate(int min, int max, int queueSize);

// 销毁线程池
int threadPoolDestroy(ThreadPool*);

// 向线程池添加任务
void threadPoolAdd(ThreadPool *, void (*)(void *), void *);

// 读取线程池工作线程数量
int threadPoolBusyNum(ThreadPool*);

// 读取线程池存活线程数量
int threadPoolLiveNum(ThreadPool*);

// 管理线程
void *managerProcess(void *);

// 工作线程
void *workerProcess(void *);

// 工作线程退出
void exitWorkerFromThreadPool(ThreadPool *);

void threadPoolDemoOfC();